// 获取应用实例
const app = getApp();
// 直接导入health API模块，确保能访问saveRiskAssessment函数
const api = require('../../utils/api');
const healthApi = require('../../utils/api/health');

Page({
  // 页面的初始数据
  data: {
    loading: false,
    riskLevel: '',
    probability: 0,
    riskDescription: '',
    resultClass: '',
    suggestions: [],
    showFeatureImportance: false,
    featureImportance: [],
    inputData: {}
  },

  // 生命周期函数--监听页面加载
  onLoad: function(options) {
    if (options.result) {
      try {
        // 先解码URL参数，再解析JSON数据
        const resultData = JSON.parse(decodeURIComponent(options.result));
        this.handlePredictionResult(resultData);
        
        // 保存评估结果
        if (options.inputData) {
          const inputData = JSON.parse(decodeURIComponent(options.inputData));
          this.setData({ inputData });
          this.saveAssessmentResult(resultData, inputData);
        }
      } catch (error) {
        console.error('解析结果数据失败:', error);
        wx.showToast({
          title: '加载结果失败',
          icon: 'none',
          duration: 2000
        });
        
        // 返回到评估页面
        setTimeout(() => {
          wx.navigateBack({
            delta: 1
          });
        }, 2000);
      }
    } else {
      // 如果没有传递结果数据
      wx.showToast({
        title: '未找到评估结果',
        icon: 'none',
        duration: 2000
      });
      
      // 返回到评估页面
      setTimeout(() => {
        wx.navigateBack({
          delta: 1
        });
      }, 2000);
    }
  },
  
  // 处理预测结果
  handlePredictionResult: function(result) {
    // 将概率转换为百分比
    const probability = Math.round(result.probability * 100);
    
    // 确定风险等级和对应的样式类
    let riskLevel = result.risk_level;
    let resultClass = '';
    let riskDescription = '';
    let suggestions = [];
    
    // 根据风险等级设置不同的描述和建议
    if (probability < 40) {
      resultClass = 'low-risk';
      riskDescription = '您当前患糖尿病的风险较低，但仍需保持健康的生活方式。';
      suggestions = [
        '保持健康饮食，控制总热量摄入',
        '每周进行至少150分钟中等强度的有氧运动',
        '定期监测血糖，每年至少检查一次',
        '保持健康体重，避免肥胖'
      ];
    } else if (probability < 70) {
      resultClass = 'medium-risk';
      riskDescription = '您当前患糖尿病的风险中等，建议采取积极的预防措施。';
      suggestions = [
        '严格控制饮食，减少精制碳水化合物和糖分的摄入',
        '增加每日运动量，每周进行至少180分钟中等强度的有氧运动',
        '每6个月监测一次血糖和血压',
        '避免吸烟和过量饮酒',
        '控制体重，将BMI维持在正常范围内'
      ];
    } else {
      resultClass = 'high-risk';
      riskDescription = '您当前患糖尿病的风险较高，强烈建议采取立即行动并咨询医生。';
      suggestions = [
        '尽快咨询医生，进行全面的糖尿病筛查',
        '在医生指导下制定个性化的饮食和运动计划',
        '定期监测血糖，可考虑家庭血糖监测设备',
        '严格控制体重，必要时考虑减重治疗',
        '定期接受专业的健康咨询和指导',
        '减少压力，保持充足的睡眠'
      ];
    }
    
    // 更新页面数据
    this.setData({
      riskLevel: riskLevel,
      probability: probability,
      riskDescription: riskDescription,
      resultClass: resultClass,
      suggestions: suggestions,
      
      // 特征重要性（暂时使用模拟数据）
      showFeatureImportance: true,
      featureImportance: [
        { feature: '血糖', importance: 0.28, displayValue: '28%' },
        { feature: 'BMI', importance: 0.22, displayValue: '22%' },
        { feature: '年龄', importance: 0.18, displayValue: '18%' },
        { feature: '糖尿病谱系函数', importance: 0.14, displayValue: '14%' },
        { feature: '血压', importance: 0.1, displayValue: '10%' },
        { feature: '胰岛素', importance: 0.08, displayValue: '8%' }
      ]
    });
  },
  
  // 保存评估结果到本地和云端
  saveAssessmentResult: function(result, inputData) {
    try {
      // 创建评估记录
      const assessment = {
        timestamp: new Date().toISOString(),
        result: {
          prediction: result.prediction,
          probability: result.probability,
          riskLevel: result.risk_level
        },
        inputData: inputData
      };
      
      // 使用健康API保存风险评估（现在会保存到MongoDB数据库）
      healthApi.saveRiskAssessment(assessment)
        .then(response => {
          console.log('保存风险评估成功:', response);
          
          // 保存到健康主页全局状态中，方便其他页面访问
          const app = getApp();
          if (app.globalData) {
            app.globalData.lastDiabetesRiskAssessment = {
              riskLevel: result.risk_level,
              probability: result.probability,
              timestamp: new Date().toISOString()
            };
          }
        })
        .catch(error => {
          console.error('保存风险评估失败:', error);
        });
    } catch (error) {
      console.error('保存评估结果失败:', error);
    }
  },
  
  // 查看历史记录
  viewHistory: function() {
    // 确保关闭任何当前的加载状态
    wx.hideLoading();
    
    console.log('准备从结果页跳转到风险评估历史页面...');
    
    // 添加延迟避免连续跳转可能导致的问题
    setTimeout(() => {
      wx.navigateTo({
        url: '/pages/riskAssessment/riskHistory',
        success: function() {
          console.log('从结果页成功跳转到风险评估历史页面');
        },
        fail: function(error) {
          console.error('从结果页跳转到风险评估历史页面失败:', error);
          wx.showToast({
            title: '无法打开历史记录',
            icon: 'none',
            duration: 2000
          });
        }
      });
    }, 200);
  },
  
  // 重新评估
  reAssess: function() {
    wx.navigateBack({
      delta: 1
    });
  },
  
  // 返回主页
  goToHomePage: function() {
    wx.switchTab({
      url: '/pages/health/health'
    });
  }
});